package com.jt.service;

import com.jt.mapper.MovieCatMapper;
import com.jt.pojo.MovieCat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class MovieCatServiceImpl implements MovieCatService{
    @Autowired
    private MovieCatMapper movieCatMapper;

    // 获取一级菜单
    public List<MovieCat> getOne(){
        // 查询菜单中所有数据 存到集合中
        List<MovieCat> list1 = movieCatMapper.findAll();
        // 新建一个集合
        List<MovieCat> list2 = new ArrayList<>();
        // 遍历全部数据
        for (MovieCat movieCat : list1){
            // 判断 ParentId 是否 ==0
           if(movieCat.getParentId() == 0){
               // 如果等于0 则说明他是一级菜单，然后把这些数据添加到一个集合中
               list2.add(movieCat);
           }

        }
        // 输出存着一级菜单的集合
        return list2;
    }

    // 获取二级菜单
    // 方法一：
//    public List<MovieCat> getTwo(){
//        // 调用上面方法 getOne()方法  可以获取一级菜单  因为 这个方法返回那 list2里面存着一级菜单
//        List<MovieCat> oneList = getOne();
//        // 遍历一级菜单
//        for(MovieCat oneMovieCat : oneList){
//            // 遍历一级菜单中每一个元素，然后获取id 然后把此id当作二级菜单的ParentId去查数据库，查到后存在一个集合中
//            List<MovieCat> twoList = movieCatMapper.findByPId(oneMovieCat.getId());
//            // 然后把集合内容当作子元素  ，因为类中定义了一个children属性的
//            oneMovieCat.setChildren(twoList);
//        }
//        // 返回一级菜单  但是此时每个一级菜单下已经存在了二级菜单
//        return oneList;
//    }

    // 方法二：
    public List<MovieCat> getTwo(){
        // 这种是一对多设置 主要是在 sql语句那写的多  上面那种sql语句那写的简单
        List<MovieCat> oneList = movieCatMapper.getMovieCatList();
        return oneList;
    }

    @Override
    public List<MovieCat> getMovieCat(Integer level) {
        if(level == 1){
            return getOne();
        }
        return getTwo();
    }

    @Override
    public void addType(MovieCat movieCat) {
        movieCatMapper.addType(movieCat);
    }

    @Override
    public void deleteType(Integer id) {
        movieCatMapper.deleteType(id);
    }
}
